package com.xuecheng.api.client.fallback;

import com.xuecheng.api.client.SearchClient;
import com.xuecheng.api.dto.CourseIndex;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;

/**
 * @author 勾新杰
 * @version 1.0
 * @description: 搜索微服务降级处理
 * @date 2025/2/20 16:51
 */
@Slf4j
public class SearchClientFallBackFactory implements FallbackFactory<SearchClient> {

    /**
     * 创建降级对象
     *
     * @param throwable 异常
     * @return 降级对象
     */
    @Override
    public SearchClient create(Throwable throwable) {
        return new SearchClient() {

            /**
             * 添加课程索引
             *
             * @param courseIndex 课程索引
             */
            @Override
            public Boolean save(CourseIndex courseIndex) {
                log.error("添加课程索引失败，降级逻辑触发");
                return false;
            }

            /**
             * 更新课程索引
             *
             * @param courseIndex 课程索引
             */
            @Override
            public Boolean update(CourseIndex courseIndex) {
                log.error("更新课程索引失败，降级逻辑触发");
                return false;
            }

            /**
             * 删除课程索引
             *
             * @param id 课程id
             */
            @Override
            public Boolean delete(String id) {
                log.error("删除课程索引失败，降级逻辑触发");
                return false;
            }
        };
    }
}
